package com.kirayous.api.blog.service;

import com.kirayous.common.PageResult;
import com.kirayous.common.dto.ArticleBackDTO;
import com.kirayous.common.entity.Article;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kirayous.common.vo.ArticleTopVO;
import com.kirayous.common.vo.ArticleVO;
import com.kirayous.common.vo.ConditionVO;
import com.kirayous.common.vo.DeleteVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author KiraYous
 * @since 2021-09-23
 */
public interface IArticleService extends IService<Article> {

    /**
     * 查询后台文章
     *
     * @param condition 条件
     * @return 文章列表
     */
    PageResult<ArticleBackDTO> listArticleBacks(ConditionVO condition);

    /**
     * 根据id查看后台文章
     *
     * @param articleId 文章id
     * @return 文章列表
     */
    ArticleVO getArticleBackById(Integer articleId);

    /**
     * 修改文章置顶
     *
     * @param articleTopVO 文章置顶信息
     */
    void updateArticleTop(ArticleTopVO articleTopVO);


    /**
     * 删除或恢复文章
     *
     * @param deleteVO 逻辑删除对象
     */
    void updateArticleDelete(DeleteVO deleteVO);

    /**
     *
     * 真正从数据库中删除文章
     *
     * @param articleIdList 文章id集合
     */
    void deleteArticles(List<Integer> articleIdList);
}
